import 'package:kwai/kwai_method_channel.dart';
import 'package:kwai/model/callback_result.dart';
import 'package:plugin_platform_interface/plugin_platform_interface.dart';

abstract class KwaiPlatform extends PlatformInterface {
  KwaiPlatform() : super(token: _token);

  static final Object _token = Object();

  static KwaiPlatform _instance = MethodChannelKwai();

  static KwaiPlatform get instance => _instance;

  static set instance(KwaiPlatform instance) {
    PlatformInterface.verifyToken(instance, _token);
    _instance = instance;
  }

  /// 初始化快手SDK
  Future<String> registerKwaiApp({String? apiKey, String? universalLink}) {
    throw UnimplementedError("registerKwaiApp() has not been implemented");
  }

  /// 授权快手登录
  Future<String> authorLogin({String? scope}) {
    throw UnimplementedError("authorLogin() has not been implemented");
  }

  /// 授权登录结果
  Stream<CallbackResult> authorLoginCallback() {
    throw UnimplementedError("authorLoginCallback() has not been implemented");
  }
}
